package JavaFoundation.myLock.locktools;

import java.util.concurrent.CyclicBarrier;

/*
CyclicBarrier它的初始值为0，是到达某一个数后主线程才执行
CyclicBarrier是有一个内存屏障点，先到的先阻塞，到齐了才进行下一步。
 */
public class CyclicBarrierDemo {

    public static void main(String[] args){
        CyclicBarrier cyclicBarrier = new CyclicBarrier(6,()->{
            System.out.println("召唤神龙");
        });
        for (int i = 1; i <= 7; i++) {
            final int temInt = i;
            new Thread(()->{
                System.out.println(Thread.currentThread().getName()+"======收集到第"+temInt+"龙珠");
                try { cyclicBarrier.await(); }catch (Exception e) { e.printStackTrace(); }
            },String.valueOf(i)).start();
        }
    }
}
